package com.lmy.springboot.config;

import com.lmy.springboot.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 这是一个配置类
 * 配置拦截器有两种方式
 * 1.实现WebMvcConfigurer接口，重写addInterceptors方法，传入要加入的自定义的拦截器，并指定拦截路径
 * 2.通过@Bean注解，注入一个实现了WebMvcConfigurer接口的实现类的实例到ioc容器中，该实例也重写了addInterceptors方法并传入自定义拦截器，再指定拦截路径
 */
@Configuration
public class WebConfig /*implements WebMvcConfigurer*/ {

//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        //注册自定义拦截器LoginInterceptor
//        registry.addInterceptor(new LoginInterceptor())
//                .addPathPatterns("/**") //拦截所有请求
//                .excludePathPatterns("/", "/login");    //指定放行的请求uri
//    }

    @Bean
    public WebMvcConfigurer webMvcConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/**") //拦截所有请求
                .excludePathPatterns("/", "/login", "/upload.html", "/upload", "/sql");    //指定放行的请求uri
            }
        };
    }
}
